Having a field in a child class with a name that differs from a parent class' field only by capitalization is sure to cause confusion. Such child
class fields should be renamed.
Noncompliant code example
Public Class Fruit
Protected PlantingSeason As String
' ...
End Class
Public Class Raspberry
Inherits Fruit
Protected Plantingseason As String ' Noncompliant
' ...
End Class
Compliant solution
Public Class Fruit
Protected PlantingSeason As String
' ...
End Class
Public Class Raspberry
Inherits Fruit
Protected WhenToPlant As String
' ...
End Class
Or
Public Class Fruit
Protected PlantingSeason As String
' ...
End Class
Public Class Raspberry
Inherits Fruit
' Field removed, parent field will be used instead
End Class
Exceptions
This rule ignores same-name fields that are Shared
in both the parent and child classes. It also ignores Private
parent
class fields and fields explicitly declared as Shadows
, but in all other such cases, the child class field should be renamed.